package com.terry.test3;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 *
 * 模拟一个连续的内存块，其大小固定为100字节：
 *  - 1.用户输入"REQUEST=10"表示从内存中分配一个连续的大小为10字节的空间，当分配成功时，输出内存区块的首地址，分配失败(内存空间不足)时输出"error"
 * - 2.用户输入“RELEASE=0”,表示释放首地址为0所对应的区块，如果不存在相应区块，则输出“error”,反之不输出
 *
 * @author 小八
 * @date 2023年02月13日10:37
 */
public class Title29 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while(in.hasNextLine()){
            List<String> list = new ArrayList<>();
            //接下来有多少行
            int n = Integer.parseInt(in.nextLine());
            int[] arr = new int[100];
            for (int i = 0; i < n; i++) {
                String[] split = in.nextLine().split("=");
                if("REQUEST".equals(split[0])){
                  int result = malloc(arr,Integer.parseInt(split[1]));
                  if(result == -1){
                      list.add("error");
                  }else{
                      list.add(result+"");
                  }
                }
                if("RELEASE".equals(split[0])){
                    int result = release(arr,Integer.parseInt(split[1]));
                    if(result == -1){
                        list.add("error");
                    }
                }
            }
            list.forEach(System.out::println);
        }
    }

    /**
     * 分配
     * @param arr
     * @param size
     * @return
     */
    public static int malloc(int[] arr,int size){
        int count = 0;
        for(int i=0;i<arr.length;i++){
            if(arr[i] == 0){
                count ++ ;
                if(count == size){
                    for(int j=i-count+1;j<i+1;j++){
                        arr[j] = i ;
                    }
                    return i-count+1;
                }
            }else{
                count = 0;
            }
        }
        return -1;
    }

    public static int release(int[] arr,int startIndex){
        if(arr[startIndex]>0){
            if(startIndex>1 && arr[startIndex-1] == arr[startIndex]){
                return -1;
            }else{
                int value = arr[startIndex];
                for(int i=startIndex;i<arr.length;i++){
                    if(arr[i] == value){
                        arr[i] = 0;
                    }else{
                        break;
                    }
                }
                return 0;
            }

        }else{
            return -1;
        }
    }
}
//样例1：
//2
//REQUEST=10
//REQUEST=20
//    输出样例1：
//    0
//    10
//5
//REQUEST=10
//REQUEST=20
//RELEASE=0
//REQUEST=20
//REQUEST=10